package leetcode101.mathematical_problem;

/**
 * @author Synhard
 * @version 1.0
 * @Class Code10
 * @Description 168. Excel表列名称
 * 给定一个正整数，返回它在 Excel 表中相对应的列名称。
 *
 * 例如，
 *
 *     1 -> A
 *     2 -> B
 *     3 -> C
 *     ...
 *     26 -> Z
 *     27 -> AA
 *     28 -> AB 
 *     ...
 * 示例 1:
 *
 * 输入: 1
 * 输出: "A"
 * 示例 2:
 *
 * 输入: 28
 * 输出: "AB"
 * 示例 3:
 *
 * 输入: 701
 * 输出: "ZY"
 *
 * @tel 13001321080
 * @email 823436512@qq.com
 * @date 2021-04-26 11:10
 */
public class Code10 {

    public static void main(String[] args) {
        System.out.println(convertToTitle(28));
    }

    public static String convertToTitle(int columnNumber) {
        StringBuilder sb = new StringBuilder();

        while (columnNumber != 0) {
            columnNumber -= 1;
            int curTag = columnNumber % 26;
            sb.insert(0, (char) (curTag + 65));
            columnNumber /= 26;
        }
        return new String(sb);
    }

}
